package com.version1.diabeco;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class BaseDeDatos extends SQLiteOpenHelper {
	// If you change the database schema, you must increment the database version.
    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "Diabeco_Style.db";
    
	/** MENU PRINCIPAL**/
	String sqlCreateGlucosa = "CREATE TABLE glucosa (alias VARCHAR(15), fecha DATE, hora DATETIME, " +
			"cantidad FLOAT, " +
			"um_glucosa VARCHAR(5), " +
			"nivel_riesgo VARCHAR(30), " +
			"momento VARCHAR(10), " +
			"cuando VARCHAR(20), " +
			"mujer VARCHAR(15), " +
			"observaciones VARCHAR(15), " +
			"nota TEXT, " +
			"PRIMARY KEY (alias, fecha, hora))";

	String sqlCreateAlimento = "CREATE TABLE alimento (alias VARCHAR(15), fecha DATE, hora DATETIME, " +
			"cuando VARCHAR(20), " +
			"tipo_alimento TEXT, " +
			"hdecarbono FLOAT, " +
			"porcentaje_ajuste FLOAT, " +
			"hdecarbono_ajustado FLOAT," +
			"PRIMARY KEY (alias, fecha, hora))";
	
	String sqlCreateMedicacion = "CREATE TABLE medicacion (alias VARCHAR(15), fecha VARCHAR(10), hora VARCHAR(8), " +
			"desc_medicamento TEXT, " +
			"lugar_aplicacion VARCHAR(15), " +
			"dosis  VARCHAR(3), " +
			"um_dosis VARCHAR(10)," +
			"PRIMARY KEY (alias, fecha, hora))";

	String sqlCreateEjercicio = "CREATE TABLE ejercicio (alias VARCHAR(15), fecha DATE, hora DATETIME, " +
			"id_ejercicio INT, " +
			"tiempo DATETIME, " + //en minutos
			"intensidad VARCHAR(15)," +
			"PRIMARY KEY (alias, fecha, hora))";
	
	String sqlCreatePeso = "CREATE TABLE peso (alias VARCHAR(15), fecha DATE, hora DATETIME, " +
			"peso FLOAT, " +
			"um_peso VARCHAR(3)," +
			"PRIMARY KEY (alias, fecha, hora))";	

	String sqlCreateMedicamento = "CREATE TABLE medicamento (alias VARCHAR(15), id_med INTEGER, tipo VARCHAR(1), descripcion TEXT, " +
			"PRIMARY KEY (alias, id_med))";		

    
	//Constructor
    public BaseDeDatos(Context context, String dbName, CursorFactory cFactory, int Version) {
        super(context, dbName, cFactory, Version);
    }
    
    
    @Override
    public void onCreate(SQLiteDatabase db) {
    	ContentValues nuevo_medicamento;
    	
    	if (db.isReadOnly()) {
			db = getWritableDatabase();
		}
    	//5 Botones Principales
        db.execSQL(sqlCreateGlucosa);
        db.execSQL(sqlCreateAlimento);
        db.execSQL(sqlCreateMedicacion);
        db.execSQL(sqlCreateEjercicio);
        db.execSQL(sqlCreatePeso);
        
        //Datos del Usuario
        db.execSQL(sqlCreateMedicamento);
        
        //Insertamos Medicamentos de prueba
		  nuevo_medicamento = new ContentValues();
		  nuevo_medicamento.put("alias", "Palma");
		  nuevo_medicamento.put("id_med", 1);
		  nuevo_medicamento.put("tipo", "I");
		  nuevo_medicamento.put("descripcion", "Insulina A");
		  db.insert("medicamento", null, nuevo_medicamento);
		  
		  nuevo_medicamento.put("alias", "Palma");
		  nuevo_medicamento.put("id_med", 2);
		  nuevo_medicamento.put("tipo", "I");
		  nuevo_medicamento.put("descripcion", "Insulina B");
		  db.insert("medicamento", null, nuevo_medicamento);
		  
		  nuevo_medicamento.put("alias", "Palma");
		  nuevo_medicamento.put("id_med", 3);
		  nuevo_medicamento.put("tipo", "M");
		  nuevo_medicamento.put("descripcion", "Medicamento A");
		  db.insert("medicamento", null, nuevo_medicamento);
		  
		  nuevo_medicamento.put("alias", "Palma");
		  nuevo_medicamento.put("id_med", 4);		  
		  nuevo_medicamento.put("tipo", "M");
		  nuevo_medicamento.put("descripcion", "Medicamento B");
		  db.insert("medicamento", null, nuevo_medicamento);
    }
    
    
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    	//Borrar y volver a crear 
//        db.execSQL(SQL_DELETE_ENTRIES);
//        onCreate(db);
    	
    	//Update
    	if (newVersion > oldVersion) {
//			db.execSQL(sqlUpdate)
		}
    }
    
    @Override
    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        onUpgrade(db, oldVersion, newVersion);
    }    
}
